<?php


namespace app\common\validate\system;


use yiqiniu\extend\validate\YqnValidate;

/**
 * 虚码套餐配置表
 * Class SystemVirtualPackage
 * @package app\common\validate\virtual
 */
class SystemVirtualPackageValid extends YqnValidate
{

    /**
     *  字段：'id'，    类型：'integer',    是否为空：1,    说明：
     *  字段：'title'，    类型：'character varying(100)',    是否为空：1,    说明：标题
     *  字段：'money'，    类型：'numeric(10,2)',    是否为空：1,    说明：金额
     *  字段：'num'，    类型：'integer',    是否为空：1,    说明：数量
     *  字段：'status'，    类型：'smallint',    是否为空：1,    说明：状态 1:可用 0禁用
     *  字段：'create_at'，    类型：'timestamp without time zone',    是否为空：1,    说明：
     */

    /**
     *  验证规则
     */
    protected $rule = [
        'id' => 'require|number|dbExists:system_virtual_package,id',
        'title' => 'require|unique:system_virtual_package,title',
        'money' => 'require|float',
        'num' => 'require|number',
        'status' => 'require|number',
        'create_at' => 'require|date',


    ];

    /**
     * 定义错误信息
     * 格式：'字段名.规则名'    =>    '错误信息'
     *
     * @var array
     */
    protected $message = [
        'id.require' => '信息未找到',
        'id.number' => '只能为数字类型',
        'id.dbExists' => '套餐编号不存在',
        'title.require' => '标题不能为空',
        'title.unique' => '标题名称已经存在',
        'money.require' => '金额不能为空',
        'money.float' => '金额只能为数字可带小数点',
        'num.require' => '数量不能为空',
        'num.number' => '数量只能为数字类型',
        'status.require' => '状态不能为空',
        'status.number' => '状态只能为数字类型',
        'create_at.require' => '不能为空',
        'create_at.date' => '只能为日期类型',


    ];

    //验证场景
    protected $scene = [
        'add' => ['title', 'money', 'num'],
        'edit' => ['id', 'title', 'money', 'num'],
        'info' => ['id'],
    ];

    /**
     * 编辑状态
     * @return void
     */
    public function sceneEditStatus()
    {
        $this->only(['id', 'status']);
    }
}
